package ma.co.ba.BusinessApplications.business.groupes.impl;

import java.util.List;

import ma.co.ba.BusinessApplications.business.groupes.GroupeBusiness;
import ma.co.ba.BusinessApplications.dao.commons.DAOServices;
import ma.co.ba.BusinessApplications.model.Groupe;
import ma.co.ba.BusinessApplications.model.Utilisateur;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Service("groupeBusiness")
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class GroupeBusinessImpl implements GroupeBusiness {

	@Autowired
	DAOServices daoServices;

	@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
	public void saveGroupe(Groupe groupe) {
		daoServices.saveEntity(groupe);
	}

	public Groupe getGroupeById(int id) {
		
		return (Groupe) daoServices.getEntityById2(Groupe.class, new Integer(id));
		
	}

	public List<Groupe> getGroupeList() {
		List<Groupe> groupes = null;
		groupes = (List<Groupe>) daoServices
				.getEntities(Groupe.class);
		return groupes;
	}

	public List<Utilisateur> getUtilisateursOfGroupeById(int id) {
		Groupe groupe = (Groupe) daoServices.getEntityById2(Groupe.class, new Integer(id));
		System.out.println(groupe.getUtilisateurs());
		for (Utilisateur user : groupe.getUtilisateurs()) {
			System.out.println("nom : " + user.getNom());
		}
		return groupe.getUtilisateurs();
	}

}
